package br.com.velp.sudecap.entidade;

import br.com.velp.sudecap.hibernate.intercept.Auditable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

/**
 * <sumario> 
 * <objetivo> "Rastreabilidade" </objetivo> 
 * <autor> EDUARDO SANTOS DE OLIVEIRA </autor> 
 * <versao>1.0.0.0</versao> 
 * <data_criacao> 16.12.2013 </data_criacao> 
 * <data_ultima_alteracao> N/A </data_ultima_alteracao>
 * <requisitos_afetados> N/A </requisitos_afetados> 
 * <descricao> Bean Responsável Pelo Mapeamento da Tabela DOCUMENTO_EMPREENDIMENTO </descricao> 
 * </sumario>
 */
@Entity
@Table(name = "TB_DOCUMENTO_EMPREENDIMENTO")
@Auditable(logTableName = "TB_DOCUMENTO_EMPREEND_LOG")
public class DocumentoEmpreendimento extends EntityBase {
    
    public static final Long serialVersionUID = 1L;
    
    @Id
    @SequenceGenerator(name = "SQ_ID_DOC_EMP", sequenceName = "SQ_ID_DOC_EMP", allocationSize = 1)
    @GeneratedValue(generator = "SQ_ID_DOC_EMP")
    @Column(name = "ID_DOCUMENTO_EMPREENDIMENTO", nullable = false, unique = true)                                                            
    private Long id;
    
    @Fetch(FetchMode.SELECT)
    @ManyToOne()
    @JoinColumn(name = "ID_EMPREENDIMENTO")
    private Empreendimento empreendimento;
    
    @Fetch(FetchMode.SELECT)
    @ManyToOne()
    @JoinColumn(name = "ID_DOCUMENTO")
    private Documento documento;

    public DocumentoEmpreendimento() {
    }

    public DocumentoEmpreendimento(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Empreendimento getEmpreendimento() {
        return empreendimento;
    }

    public void setEmpreendimento(Empreendimento empreendimento) {
        this.empreendimento = empreendimento;
    }

    public Documento getDocumento() {
        return documento;
    }

    public void setDocumento(Documento documento) {
        this.documento = documento;
    }
    
}
